/**
 * 对原码求1的数量和0的数量少的那个
 * 注意负数的原码的构成
 */
#include <bits/stdc++.h>
using namespace std;

int N;

int get(int n){
    if(n >= 0) return __builtin_popcount(n);

    n = -n;
    return __builtin_popcount(n) + 1;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1; 
    cin >> nofkase;
    for(int kase=1;kase<=nofkase;++kase){
        cin >> N;
        auto t = get(N);
        t = min(t, 32 - t);
        cout << t << endl;    
    }
    return 0;
}